<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Servicio extends CI_Controller {
	//Metodo constructor de la clase
	function __construct(){
		parent::__construct();
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra un listado con todos los servicios activos o inactivos pero NO los borrados (-1)
	function consultar(){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){
			//Cargo el modelo donde estan los datos de los servicios registrados
			$this->load->model('m_servicio');
									
			//Busco todos los servicios, tanto activos como inactivos, menos los borrados(-1)
			$listadoServicios = $this->m_servicio->buscar();
			
			//Le paso el listado de todas los servicios a la vista para que los muestre en una tabla
			$datos['servicios'] = $listadoServicios;
			
			////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//Busco el promedio de precios de los servicios ofrecidos			
			$precioPromedio = $this->m_servicio->buscarPrecioPromedio();
			
			//Se lo paso a la vista
			$datos['precioPromedio'] = $precioPromedio;
			////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			
			//Cargo la vista donde se muestra la tabla de servicios y la guardo en una variable para pasarsela a la vista principal
			$datosPrincipal['vista'] = $this->load->view('v_servicios', $datos, true);
			
			//Cargo la vista principal con los datos de la vista consultar servicios
			$this->load->view('v_admin', $datosPrincipal);
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo solo se puede llamar con ajax
	function eliminar($idServicio=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){
			//Segunda comprobacion: Que idServicio sea numerico y mayor que cero.			
			if(is_numeric($idServicio) && $idServicio>0){
				//Cargo el modelo donde estan los datos de los servicios registrados
				$this->load->model('m_servicio');
				
				//Elimino al servicio pasado por la url
				$respuesta = $this->m_servicio->eliminar($idServicio, $this->session->userdata('idUsuarioLog'));
				
				//Busco todos los servicios, tanto activos como inactivos, menos los borrados(-1) que quedaron
				$listadoServicios = $this->m_servicio->buscar();
				
				//Le paso el listado de todos los servicios a la vista para que los muestre en una tabla
				$datos['servicios'] = $listadoServicios;
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Busco el promedio de precios de los servicios ofrecidos			
				$precioPromedio = $this->m_servicio->buscarPrecioPromedio();
				
				//Se lo paso a la vista
				$datos['precioPromedio'] = $precioPromedio;
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
								
				//Cargo la vista donde se muestra la tabla de servicios
				$this->load->view('v_servicios', $datos);
			} else {
				//No se han pasado todos los parametros necesarios para borrar un registro
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				echo("No se han pasado todos los parametros necesarios para borrar un servicio");
			}			
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			echo("No tiene permiso para borrar un servicio");
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function abrirPantallaCrear(){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){							
			////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			//Cargo la vista donde se muestra el formulario para crear un servicio y la guardo en una variable para pasarsela a la vista principal
			$datosPrincipal['vista'] = $this->load->view('v_servicios_crear','', true);
			
			//Cargo la vista principal con los datos de la vista para crear un servicio
			$this->load->view('v_admin', $datosPrincipal);
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function crear(){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){
			//Segunda comprobacion: Que se haya pasado por post el nombre, precio y el estado del servicio a crear
			if($this->input->post('nombre',true) != "" && is_numeric($this->input->post('precio',true)) && $this->input->post('precio',true)>=0 && ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){
				
				//Cargo el modelo donde estan los datos de los servicios
				$this->load->model('m_servicio');
				
				//Creamos el servicio
				$resultado = $this->m_servicio->crear(quotes_to_entities($this->input->post('nombre',true)),$this->input->post('precio',true), $this->input->post('estado',true), $this->session->userdata('idUsuarioLog'));
				
				if($resultado == 1){
					echo("<script> alert('El servicio: ".$this->input->post('nombre',true)." se ha creado correctamente.');</script>");
				}else{
					echo("<script> alert('El servicio: ".$this->input->post('nombre',true)." no se ha creado. Ha habido un error.');</script>");
				}
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function abrirPantallaModificar($idServicio=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){
			//Segunda comprobacion: Que idServicio pasado sea numerico y mayor que cero.
			if(is_numeric($idServicio) && $idServicio>0){
				
				//Cargo el modelo donde estan los datos de los servicios registrados
				$this->load->model('m_servicio');
				
				//Busco al servicio que hay que modificar
				$servicio = $this->m_servicio->get($idServicio);
				
				//Tercera comprobacion: Que el servicio pasado por la url sea existente
				if($servicio->num_rows() == 1){
					//Le paso el servicio a modificar a la vista
					$datos['servicioSel'] = $servicio;
					
					//Busco al servicio siguiente del que hay que modificar
					$idServicioSig = $this->m_servicio->getContiguo($idServicio,1);
					
					//Le paso el servicio siguiente del que hay que modificar a la vista
					$datos['idServicioSig'] = $idServicioSig;
					
					//Busco al servicio anterior del que hay que modificar
					$idServicioAnt = $this->m_servicio->getContiguo($idServicio,-1);
					
					//Le paso el servicio anterior del que hay que modificar a la vista
					$datos['idServicioAnt'] = $idServicioAnt;
					
					//Cargo la vista donde se muestra el formulario para modificar un servicio y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_servicios_modificar',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para modificar un servicio
					$this->load->view('v_admin', $datosPrincipal);
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//No se han pasado los parametros minimos necesarios para modificar un servicio
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function modificar($idServicio=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){	   
			//Segunda comprobacion: Que se haya pasado por post el nombre, precio y el estado del servicio a modificar.
			//Ademas que se haya pasado por la url el id del servicio a modificar y que sea numerico y mayor que cero
			if(is_numeric($idServicio) && $idServicio>0 && is_numeric($this->input->post('precio',true)) && $this->input->post('precio',true)>=0 &&
			   $this->input->post('nombre',true) != "" && ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){
				
				//Cargo el modelo donde estan los datos de los servicios
				$this->load->model('m_servicio');
											
				//Modificamos el servicio
				$resultado = $this->m_servicio->modificar($idServicio, quotes_to_entities($this->input->post('nombre',true)), $this->input->post('precio',true), $this->input->post('estado',true));
												
				if($resultado == 1){
					echo("<script> alert('El servicio: ".$this->input->post('nombre',true)." se ha modificado correctamente. ".$mensaje."');</script>");
				} else{
					echo("<script> alert('El servicio: ".$this->input->post('nombre',true)." no se ha modificado. Ha habido un error o los datos permanecieron iguales.');</script>");
				}
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
		}
	}
	
	//Este metodo solo se puede llamar con ajax
	//Devuelve el precio de un servicio para completar el formulario de nuevo servicio de cliente
	function consultarDatos($idServicio=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){
			//Segunda comprobacion: que idServicio sea numerico y mayor o igual que cero. Igual que cero quiere decir que no hay servicio seleccionado y por ende hay que devolver cero
			if(is_numeric($idServicio) && $idServicio>=0){
				if($idServicio>0){
					//Cargo el modelo donde estan los datos de los servicios registrados
					$this->load->model('m_servicio');
					
					//Busco el servicio  para obtener el precio
					$servicio = $this->m_servicio->get($idServicio);
					
					//Devuelvo el precio del servicio
					echo($servicio->row()->precio);
				}else{
					echo("0");
				}
			} else {
				//No se han pasado los parametros minimos necesarios para consultar el precio del servicio
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
}

/* End of file servicio.php */
/* Location: ./application/controllers/servicio.php */